package com.cskaoyan.javase.oop1._16access._0introduction;

// import com.cskaoyan.javase.oop1._16access._1clazz.AAA;
/**
 * 访问权限控制符：在Java语言中，
 * 一切事物（类和类的所有成员）都具有(或显示定义或隐式定义的)访问权限，
 * 而这种语言层面的访问权限控制，是由访问权限修饰符实现的。
 *
 * 访问权限是分级别的，就像我家的房子，父母能用，我们也能用，但是我的衣服是不能给别人穿的。
 * Java的访问权限的级别，是依赖包（package）来实现的。
 * Java的访问权限级别共分为以下四个级别，访问权限从严格到宽松顺序为：
 *      1.只能够在同类中访问，私有的，外面谁都不能用。
 *          该访问级别对应关键字private，私有的，它是最严格的。仅在类的内部生效。
 *      2.同一包中的子类或者其它类能够访问，同包中都可以使用。
 *          也有书籍把这种访问级别称之为"包私有 package-private"
 *          我们一般习惯称呼这种访问级别是"默认的，缺省的访问权限"
 *          对应在访问权限修饰符的位置什么都不些，空着，就是一个默认的，在同包下能够访问的访问级别。
 *      3.不同包的子类能够访问。
 *          对应关键字"protected"，称之为受保护的访问权限。
 *          这个访问权限，我们这堂课不讲。等学到继承后再说。
 *      4.不同包下也能够任意访问。相当于没有做访问权限控制，同一个module下都能够任意访问。
 *          对应关键字"public"，称之为公共的访问权限。
 *
 *  访问权限级别在修饰不同的结构时，可用的不同：
 *      1.类的访问权限级别：只要public和默认的
 *      2.类中成员（包括普通成员，静态成员）以及构造器的访问权限级别：四种都可以
 *      3.局部变量：局部变量已经被大括号限制死了作用域，所以它不需要访问权限控制。
 *
 * @since 11:17
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // 局部变量不能被访问权限修饰
        int a = 10;

        // 不同包下的非public class不能够访问,因为没有访问权限
        // new AAA
    }
}
